The present disclosure describes systems and techniques relating to installation of software on computing systems, for example, software installer verification during software product development.
Over the course of a software product's development life-cycle, the resources needed to correctly install the product can change regularly, often on a daily basis. Resources that often change include the program's executable code, help files, readme and license files, system code, system registry entries, and components installed into other software products to allow for feature integration. For example, in Windows® systems for personal computers, provided by Microsoft Corporation of Redmond, Wash., registry entries that are added or modified by a software product installer frequently change on a daily basis during development of the product.
Moreover, for each logical resource in the software product, there can be multiple actual resources that are provided for various installation options available with the product. Each operating system (OS) can have slightly different locations for system components, even within the same OS family, such as in Windows® systems. When a software product is created for multiple languages (e.g., English and French), a single logical resource, such as a help file on a particular topic, can have multiple different files and names available for installation for the different language versions of the product. The variety of installation combinations can multiply by a power of two for each different custom install option.
Current installation monitoring products can be used to track system changes in order to identify what is installed by a software installer, or to facilitate cleanly uninstalling a software product. Such installation monitoring products can also be used to identify all the components of a current software installation result that are different than the components of a previous software installation result. Additionally, MICROSOFT's Installer technology drives the creation of installers from a database, which can be exported into MICROSOFT Access and used later to verify that the entries are all installed on a system.